<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가


// 게시물 정보($write_row)를 출력하기 위하여 $list로 가공된 정보를 복사 및 가공, common.lib.php 에 있는 메소드 가져옴.
function get_list_new($write_row, $board, $skin_path, $subject_len=40)
{
	static $g4, $config;
	static $qstr, $page;

	//$t = get_microtime();

	// 배열전체를 복사
	
	$list = $write_row;
	unset($write_row);

// 	$list['is_notice'] = preg_match("/[^0-9]{0,1}{$list['wr_id']}[\r]{0,1}/",$board['bo_notice']);
	//제목
	if ($subject_len)
		$list['subject'] = conv_subject($list['ntc_title'], $subject_len, "…");
	else
		$list['subject'] = conv_subject($list['ntc_title'], $board['bo_subject_len'], "…");

	// 목록에서 내용 미리보기 사용한 게시판만 내용을 변환함 (속도 향상) : kkal3(커피)님께서 알려주셨습니다.
	if ($board['bo_use_list_content'])
	{
		$html = 0;
// 		if (strstr($list['wr_option'], "html1"))
// 			$html = 1;
// 		else if (strstr($list['wr_option'], "html2"))
// 			$html = 2;

		$list['content'] = conv_content($list['ntc_content'], $html);
	}

// 	$list['comment_cnt'] = "";
// 	if ($list['wr_comment'])
// 		$list['comment_cnt'] = "($list[wr_comment])";

	// 당일인 경우 시간으로 표시함
	$list['datetime'] = substr($list['reg_date'],0,10);
	$list['datetime2'] = $list['reg_date'];
	if ($list['datetime'] == $g4['time_ymd'])
		$list['datetime2'] = substr($list['datetime2'],11,5);
	else
		$list['datetime2'] = substr($list['datetime2'],5,5);
	// 4.1
// 	$list['last'] = substr($list['wr_last'],0,10);
// 	$list['last2'] = $list['wr_last'];
// 	if ($list['last'] == $g4['time_ymd'])
// 		$list['last2'] = substr($list['last2'],11,5);
// 	else
// 		$list['last2'] = substr($list['last2'],5,5);

// 	$list['wr_homepage'] = get_text(addslashes($list['wr_homepage']));

	//$tmp_name = get_text(cut_str($list['regr_nm'], $config['cf_cut_name'])); // 설정된 자리수 만큼만 이름 출력
// 	if ($board['bo_use_sideview'])
// 		$list['name'] = get_sideview($list['mb_id'], $tmp_name, $list['wr_email'], $list['wr_homepage']);
// 	else
// 		$list['name'] = "<span class='".($list['mb_id']?'member':'guest')."'>$tmp_name</span>";
	$list['name'] = $list['regr_nm'];

// 	$reply = $list['wr_reply'];

	$list['reply'] = "";
	if (strlen($reply) > 0)
	{
		for ($k=0; $k<strlen($reply); $k++)
			$list['reply'] .= ' &nbsp;&nbsp; ';
    }

//     $list['icon_reply'] = "";
//     if ($list['reply'])
//     		$list['icon_reply'] = "<img src='$skin_path/img/icon_reply.gif' align='absmiddle'>";

//     $list['icon_link'] = "";
//     if ($list['wr_link1'] || $list['wr_link2'])
//     	$list['icon_link'] = "<img src='$skin_path/img/icon_link.gif' align='absmiddle'>";

    // 분류명 링크
    $list['ca_name_href'] = "/adm/adm_new/board.php?bo_table=$board[bo_table]&sca=".urlencode($list['ca_name']);

    $list['href'] = "/adm/adm_new/board.php?bo_table=$board[bo_table]&wr_id=$list[id]" . $qstr;
    
    if ($board['bo_use_comment'])
        $list['comment_href'] = "javascript:win_comment('/adm/adm_new/board.php?bo_table=$board[bo_table]&wr_id=$list[id]&cwin=1');";
    else
        $list['comment_href'] = $list['href'];

    $list['icon_new'] = "";
    if ($list['wr_datetime'] >= date("Y-m-d H:i:s", $g4['server_time'] - ($board['bo_new'] * 3600)))
        $list['icon_new'] = "<img src='$skin_path/img/icon_new.gif' align='absmiddle'>";

//     $list['icon_hot'] = "";
//     if ($list['wr_hit'] >= $board['bo_hot'])
//     	$list['icon_hot'] = "<img src='$skin_path/img/icon_hot.gif' align='absmiddle'>";

//     $list['icon_secret'] = "";
//     if (strstr($list['wr_option'], "secret"))
//     	$list['icon_secret'] = "<img src='$skin_path/img/icon_secret.gif' align='absmiddle'>";

    // 링크
    for ($i=1; $i<=$g4['link_count']; $i++)
    {
		$list['link'][$i] = set_http(get_text($list["wr_link{$i}"]));
		$list['link_href'][$i] = "/adm/adm_new/link.php?bo_table=$board[bo_table]&wr_id=$list[id]&no=$i" . $qstr;
		$list['link_hit'][$i] = (int)$list["wr_link{$i}_hit"];
	}

	// 가변 파일
// 	$list['file'] = get_file($board['bo_table'], $list['wr_id']);

// 	if ($list['file']['count'])
//         $list['icon_file'] = "<img src='$skin_path/img/icon_file.gif' align='absmiddle'>";

    return $list;
}



// 분류 사용 여부
$is_category = false;
if ($board[bo_use_category])
{
    $is_category = true;
    $category_location = "./board.php?bo_table=$bo_table&sca=";
    $category_option = get_category_option($bo_table); // SELECT OPTION 태그로 넘겨받음
}

$sop = strtolower($sop);
if ($sop != "and" && $sop != "or")
    $sop = "and";

// 분류 선택 또는 검색어가 있다면
$stx = trim($stx);
//$write_table = g4_write_notice
if ($sca || $stx)
{
    $sql_search = get_sql_search($sca, $sfl, $stx, $sop);

    // 가장 작은 번호를 얻어서 변수에 저장 (하단의 페이징에서 사용)
    $sql = " select MIN(id) as min_wr_num from $write_table ";
    $row = sql_fetch($sql);
    $min_spt = $row[min_wr_num];

    if (!$spt) $spt = $min_spt;
	
    $sql_search .= " and (a.id between '".$spt."' and '".($spt + $config[cf_search_part])."') ";

    // 원글만 얻는다. (코멘트의 내용도 검색하기 위함)
//     $sql = " select distinct ntc_id from notice_view_history where $sql_search ";
//     $result = sql_query($sql);
//     $total_count = mysql_num_rows($result);
}
else
{
    $sql = " select count(*) as cnt from $write_table";
    $row = sql_fetch($sql);
    $total_count = $row[cnt];
}

$total_page  = ceil($total_count / $board[bo_page_rows]);  // 전체 페이지 계산
if (!$page) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $board[bo_page_rows]; // 시작 열을 구함

// 관리자라면 CheckBox 보임
$is_checkbox = false;
if ($member[mb_id] && ($is_admin == "super" || $group[gr_admin] == $member[mb_id] || $board[bo_admin] == $member[mb_id]))
    $is_checkbox = true;

// 정렬에 사용하는 QUERY_STRING
$qstr2 = "bo_table=$bo_table&sop=$sop";

if ($board[bo_gallery_cols])
    $td_width = (int)(100 / $board[bo_gallery_cols]);

// 정렬
// 인덱스 필드가 아니면 정렬에 사용하지 않음
//if (!$sst || ($sst && !(strstr($sst, 'wr_id') || strstr($sst, "wr_datetime")))) {
if (!$sst)
{
    if ($board[bo_sort_field])
        $sst = $board[bo_sort_field];
    else
        $sst  = "wr_num, wr_reply";
    $sod = "";
}
else {
    // 게시물 리스트의 정렬 대상 필드가 아니라면 공백으로 (nasca 님 09.06.16)
    // 리스트에서 다른 필드로 정렬을 하려면 아래의 코드에 해당 필드를 추가하세요.
    // $sst = preg_match("/^(wr_subject|wr_datetime|wr_hit|wr_good|wr_nogood)$/i", $sst) ? $sst : "";
    $sst = preg_match("/^(wr_datetime|wr_hit|wr_good|wr_nogood)$/i", $sst) ? $sst : "";
}

if ($sst){
	if( $sca ){
		$sql_order = "order by a.id desc";
	}else{
		$sql_order = "order by id desc";
	}
    //$sql_order = " order by $sst $sod ";
}
if ($sca || $stx)
{
    //$sql = " select distinct nt from $write_table where $sql_search $sql_order limit $from_record, $board[bo_page_rows] ";
	$sql = "select distinct a.id, a.ntc_title from notice_record a left outer join notice_view_history b on a.id = b.ntc_id where $sql_search $sql_order limit $from_record, $board[bo_page_rows] ";
}
else
{
    $sql = " select * from $write_table $sql_order limit $from_record, $board[bo_page_rows] ";
}
$result = sql_query($sql);

// 년도 2자리
$today2 = $g4[time_ymd];

$list = array();
$i = 0;

if (!$sca && !$stx)
{
    $arr_notice = explode("\n", trim($board[bo_notice]));
	
	for ($k=0; $k<count($arr_notice); $k++)
    {
        if (trim($arr_notice[$k])=='') continue;
		
        $row = sql_fetch(" select * from $write_table where id = '$arr_notice[$k]' ");

        if (!$row[wr_id]) continue;

        $list[$i] = get_list_new($row, $board, $board_skin_path, $board[bo_subject_len]);
        
        
        $list[$i][is_notice] = true;

        $i++;
    }
}

$k = 0;

while ($row = sql_fetch_array($result))
{
    // 검색일 경우 wr_id만 얻었으므로 다시 한행을 얻는다
    if ($sca || $stx)
        $row = sql_fetch(" select * from $write_table where id = '$row[id]' ");

    $list[$i] = get_list_new($row, $board, $board_skin_path, $board[bo_subject_len]);
    if (strstr($sfl, "subject"))
        $list[$i][subject] = search_font($stx, $list[$i][subject]);
    $list[$i][is_notice] = false;
    //$list[$i][num] = number_format($total_count - ($page - 1) * $board[bo_page_rows] - $k);
    $list[$i][num] = $total_count - ($page - 1) * $board[bo_page_rows] - $k;

    $i++;
    $k++;
}

$write_pages = get_paging($config[cf_write_pages], $page, $total_page, "./board.php?bo_table=$bo_table".$qstr."&page=");

$list_href = '';
$prev_part_href = '';
$next_part_href = '';
if ($sca || $stx)
{
    $list_href = "./board.php?bo_table=$bo_table";

    //if ($prev_spt >= $min_spt)
    $prev_spt = $spt - $config[cf_search_part];
    if (isset($min_spt) && $prev_spt >= $min_spt)
        $prev_part_href = "./board.php?bo_table=$bo_table".$qstr."&spt=$prev_spt&page=1";

    $next_spt = $spt + $config[cf_search_part];
    if ($next_spt < 0)
        $next_part_href = "./board.php?bo_table=$bo_table".$qstr."&spt=$next_spt&page=1";
}

$write_href = "";
if ($member[mb_level] >= $board[bo_write_level])
    $write_href = "./write.php?bo_table=$bo_table";

$nobr_begin = $nobr_end = "";
if (preg_match("/gecko|firefox/i", $_SERVER['HTTP_USER_AGENT'])) {
    $nobr_begin = "<nobr style='display:block; overflow:hidden;'>";
    $nobr_end   = "</nobr>";
}

// RSS 보기 사용에 체크가 되어 있어야 RSS 보기 가능 061106
$rss_href = "";
if ($board[bo_use_rss_view])
    $rss_href = "./rss.php?bo_table=$bo_table";

$stx = get_text(stripslashes($stx));

include_once("./list.skin.php");
?>
